package com.rabbitmq.ChattingRoom.service;

import com.rabbitmq.ChattingRoom.util.Entity.Room;
import com.rabbitmq.ChattingRoom.util.Entity.UserRoomMapping;
import com.rabbitmq.ChattingRoom.util.common.req.GetMsgReq;
import com.rabbitmq.ChattingRoom.util.common.req.HistoryMSGReq;
import com.rabbitmq.ChattingRoom.util.common.resp.RoomRESP;

import java.util.List;

public interface RoomService {
    /**
     * 添加聊天室
     * @param room
     * @return
     */
    Integer addRoom(Room room);

    /**
     * 判断id是否存在
     * @param id
     * @return
     */
    boolean isExistId(Long id);

    /**
     * 获取用户加入的聊天室列表
     * @param userId
     * @return
     */
    List<RoomRESP> getRoomsByUser(Long userId);

    /**
     * 获取所有聊天室
     * @return
     */
    List<Room> getRooms(Integer status);

    /**
     * 聊天室创始人删除聊天室
     * @param record
     * @return
     */
    Integer delRoomByUser(Room record);

    /**
     * 根据聊天室id获取消息列表
     * @param req
     * @return
     */
    List<HistoryMSGReq> getMsgByCount(GetMsgReq req);

    /**
     * 获取聊天室创始人
     */
    Long getRoomCreaterByRoomId(Long roomId);
}
